﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
using System.Web.Security;
using System.Security;
using System.Security.Principal;

namespace MinistryStandardPlatformWeb
{
    // 注意: 有关启用 IIS6 或 IIS7 经典模式的说明，
    // 请访问 http://go.microsoft.com/?LinkId=9394801

    public class MvcApplication : System.Web.HttpApplication
    {
        public MvcApplication()
        {
            //AuthorizeRequest += new EventHandler(MvcApplication_AuthenticateRequest);
        }
       
        protected void Application_Start()
        {

            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            AuthConfig.RegisterAuth();

            //AuthenticateRequest += new EventHandler(MvcApplication_AuthenticateRequest);

            App_Start.MessageHander.startListen();
          }

        protected void MvcApplication_AuthenticateRequest(object sender, EventArgs e)
        {
            var id = Context.User.Identity as FormsIdentity;
            if (id != null && id.IsAuthenticated && id is FormsIdentity  )
            {
                var userInfo = id.Ticket.UserData;
                Context.User = new RolePrincipal(id, userInfo);
            }
        }
    }
}